package ec.edu.ups.cidi.siia.plamdep.configuracion;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

import ec.edu.ups.cidi.siia.plamdep.utils.Log;
public class ConfiguracionConexionWeb 
{
    //coneccion a internet
    public static String htppProxy="";
    public static String htppsProxy="";
    public static String htppPort="";
    public static String htppsPort="";
    //buscadores**
    public static boolean google=true;
    public static boolean bing=false;
    public static boolean yahoo=false;
    //limite de resultados
    public static int limite_results=5;
    
    //limite de descarga de archivos
    public static int descargasParalelas=4;
    public static long timeoutDescarga=40000;
    //proxys web
    public static boolean webProxy=true;
    
    private static boolean confCargado=false;
    
    public static String RUTACONFIGURACION;
    
    
    public  ConfiguracionConexionWeb()
    {
    
    }
    
    public static void loadConfiguracionFromArchivo(File archivo )
    {
        if(confCargado==false)
            try {
             if(archivo.exists())
             {
                FileReader fr = new FileReader (archivo);
                BufferedReader br = new BufferedReader(fr);
                String linea="";
                while((linea=br.readLine())!=null)
                  if(linea.trim().length()>0)
                      setearConfiguracion(linea);
                fr.close();
                confCargado=true;
             }
             else Log.log(null,Log.MOD_CONFIGURACION,Log.LEVEL_WARNING, ConfiguracionConexionWeb.class,"Archivo de configuracion ConfiguracionConexionWeb no encontrado, matiene valores default");

             	

          }
          catch(Exception e){e.printStackTrace();   }
    	
    	
    }
    
    public static void setearConfiguracion(String conf)
    {
        try{
    	if(conf.trim().startsWith("#"))return;
        String[] separacion=conf.split("=");
        if(separacion.length!=2)return;
        	
        String parametro=separacion[0].trim();
        String valor=separacion[1].trim();
        Log.log(null,Log.MOD_CONFIGURACION,Log.LEVEL_LOAD, ConfiguracionConexionWeb.class,"Estableciendo parametro: "+parametro+"   en "+valor);
        
        
        if(parametro.compareToIgnoreCase("HTTPProxy")==0) htppProxy=valor;
        else if(parametro.compareToIgnoreCase("HTTPPort")==0) htppPort=valor;
        else if(parametro.compareToIgnoreCase("HTTPSProxy")==0) htppsProxy=valor;
        else if(parametro.compareToIgnoreCase("HTTPSPort")==0) htppsPort=valor;
        else if(parametro.compareToIgnoreCase("google")==0) google=Boolean.valueOf(valor);
        else if(parametro.compareToIgnoreCase("bing")==0)bing=Boolean.valueOf(valor);
        else if(parametro.compareToIgnoreCase("yahoo")==0) bing=Boolean.valueOf(valor);
        else if(parametro.compareToIgnoreCase("limite_results")==0) limite_results=Integer.valueOf(valor);
        else if(parametro.compareToIgnoreCase("webProxy")==0) bing=Boolean.valueOf(webProxy);
        else if(parametro.compareToIgnoreCase("descargasParalelas")==0) descargasParalelas =Integer.valueOf(valor);
        else if(parametro.compareToIgnoreCase("timeoutDescarga")==0) timeoutDescarga=Long.valueOf(valor);
        else  Log.log(null,Log.MOD_CONFIGURACION,Log.LEVEL_WARNING, ConfiguracionConexionWeb.class,parametro+":"+valor+ " No seteados");  
        
        }catch(Exception e){ Log.log(e,Log.MOD_CONFIGURACION,Log.LEVEL_WARNING, ConfiguracionConexionWeb.class,"Parametro invalido");}
    }
   
   
    public static int getSecuencia()
    {
        int sec=0;
        
        
         try 
         {
         File archivo = new File ("secuencia.conf");
         if(archivo.exists())
         {
            FileReader fr = new FileReader (archivo);
            BufferedReader br = new BufferedReader(fr);
            String linea="";
            while((linea=br.readLine())!=null)
              if(linea.trim().length()>0)
                  sec=Integer.valueOf(linea);
            fr.close();
            
         }
         else archivo.createNewFile();
         
          FileWriter fw=new FileWriter (archivo);
          fw.flush();
          fw.append(""+(sec+1));
          fw.close();
         
         
             
        }catch(Exception e)
        {
        	 Log.log(e,Log.MOD_CONFIGURACION,Log.LEVEL_ERROR, ConfiguracionConexionWeb.class,"Error al cargar secuencia");
        }
        	 return sec;
    }
    
   
}